# -*- coding:utf-8
# 5368. 找出数组中的幸运数 显示英文描述
# 用户通过次数1473
# 用户尝试次数1559
# 通过次数1479
# 提交次数1896
# 题目难度Easy
# 在整数数组中，如果一个整数的出现频次和它的数值大小相等，我们就称这个整数为「幸运数」。
#
# 给你一个整数数组 arr，请你从中找出并返回一个幸运数。
#
# 如果数组中存在多个幸运数，只需返回 最大 的那个。
# 如果数组中不含幸运数，则返回 -1 。
from typing import List
class Solution:
    def findLucky(self, arr: List[int]) -> int:
        # cntDic = {}
        cntLis = [0 for i in range(550)]
        cntLis[0] = -1

        for num in arr:
            cntLis[num] += 1

        resLis = []
        for idx,cnt in enumerate(cntLis):
            if idx == cnt:
                resLis.append(idx)

        if resLis.__len__() == 0:
            return -1
        else:
            return max(resLis)








